A user of a host device (e.g., a UNIX® server, a Linux® server, a Microsoft® Windows server, an Apple® server) may initiate an operation on a volume (e.g., a storage entity) of a storage system. For example, the operation initiated by the user may be a provisioning operation, a snapshot operation, and/or a cloning operation. The storage system may be accessible by the host device through a Storage Area Network (SAN). Alternatively, the storage system may be accessible by the host device directly as a Network Attached Storage (NAS) device.
When multiple instances (e.g., processes, threads) initiate operations (e.g., provisioning, restoring, cloning, backing up, deleting) associated with the storage system (e.g., host device side, storage system side) at the same time (e.g., simultaneously), problems may occur. For example, a command issued by a particular instance of the host device may cause interference with other operations issued by different instances. As a result, the operations issued by multiple users may fail and important data may be lost. In addition, a snapshot (e.g., a backup at a point in time) of the volume of the storage system may be left in an invalid state. Locking techniques may not sufficiently take into account resources of the host device. Furthermore, locking techniques may not take into account the volume of the storage system and when the operations are performed serially, this may cause performance degradation and latency.